A computing infrastructure can include a set of host computers (or “hosts”) on which tasks of an application are distributed and performed. To achieve high availability requirements, the computing infrastructure needs to be able to automatically switch a task among hosts in case one host suffers hardware or software problems. To implement such automatic switching, the computing infrastructure needs a heartbeat monitoring mechanism that monitors the health of each host to detect if a host is “down” or not functioning properly. The computing infrastructure further requires a failover handling mechanism that moves the workload of a task from a downed host to a backup host.
The heartbeat monitoring and failover handling mechanisms for achieving high availability can be implemented externally from an application to be monitored, or as an integral part of the application. As an external application, the computing infrastructure typically does not use normal network communications, but checks for hardware and software availability. In case of host failures, the IP address is switched to the backup host. However, merely switching IP addresses is not sufficient for stateful applications, where the session-specific and dynamically updated landscape information that defined the states would have to be switched too. An integrated mechanism can access and evaluate such information and handle failover accordingly. Additionally the tasks on the backup host must be started or at least activated. Such activity is more costly and complex for an external mechanism than for an integrated one.